Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.13.0 #92

Merged
merged 2 commits into from
Mar 4, 2024
Merged

v3.13.0 #92

merged 2 commits into from
Mar 4, 2024

Conversation

chullybun
Copy link
Collaborator

  • Enhancement: Added DatabaseMapperEx enabling extended/explicit mapping where performance is critical versus existing that uses reflection and compiled expressions; can offer up to 40%+ improvement in some scenarios.
  • Enhancement: The AddMappers<TAssembly>() and AddValidators<TAssembly>() extension methods now also support two or three assembly specification overloads.
  • Enhancement: A WorkState.UserName has been added to enable the tracking of the user that initiated the work; this is then checked to ensure that only the initiating user can interact with their own work state.
  • Fixed: The ReferenceDataOrchestrator.GetByTypeAsync has had the previous sync-over-async corrected to be fully async.
  • Fixed: Validation extensions Exists and ExistsAsync which expect a non-null resultant value have been renamed to ValueExists and ValueExistsAsync to improve usability; also they are IResult aware and will act accordingly.
  • Fixed: The ETag HTTP handling has been updated to correctly output and expect the weak W/"xxxx" format.
  • Fixed: The ETagGenerator implementation has been further optimized to minimize unneccessary string allocations.
  • Fixed: The ValueContentResult will only generate a response header ETag (ETagGenerator) for a GET or HEAD request. The underlying result IETag.ETag is used as-is where there is no query string; otherwise, generates as assumes query string will alter result (i.e. filtering, paging, sorting, etc.). The result IETag.ETag is unchanged so the consumer can still use as required for a further operation.
  • Fixed: The SettingsBase has been optimized. The internal recursion checking has been removed and as such an endless loop (StackOverflowException) may occur where misconfigured; given frequency of IConfiguration usage the resulting performance is deemed more important. Additionally, prefixes are now optional.
    • The existing support of referencing a settings property by name (settings.GetValue<T>("NamedProperty")) and it using reflection to find before querying the IConfiguration has been removed. This was not a common, or intended usage, and was somewhat magical, and finally was non-performant.

@chullybun chullybun merged commit 2a26d55 into main Mar 4, 2024
2 checks passed
@chullybun chullybun deleted the v3.13.0 branch March 4, 2024 03:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant